|
|
|
|
|
|
|
Client, Developer, and User |
|
Requirements Phase |
|
Specification Phase |
|
Design Phase |
|
Implementation Phase |
|
Integration Phase |
|
Maintenance Phase |
|
Retirement |
|
Problems with Software Production: Essence and
Accidents |
|
Improving the Software Process |
|
|
|
|
|
The life-cycle model |
|
CASE tools |
|
The individuals |
|
|
|
|
|
|
|
Systems analysis |
|
Requirements + specifications phases |
|
Operations mode |
|
Maintenance |
|
Design |
|
Architectural design, detailed design |
|
Client, developer, user |
|
Internal software development/contract software |
|
|
|
|
|
There is NO testing phase |
|
Testing is an activity performed throughout
software production |
|
Verification |
|
Performed at the end of each phase |
|
Validation |
|
Performed before delivering the product to the
client |
|
|
|
|
|
There is NO documentation phase |
|
Every phase must be fully documented before
starting the next phase |
|
Postponed documentation may never be completed |
|
The responsible individual may leave |
|
The product is constantly changing—we need the
documentation to do this |
|
The design (for example) will be modified during
development, but the original designers may not be available to document it |
|
|
|
|
|
Assumption |
|
The software being considered is economically
justifiable |
|
Concept exploration |
|
Determine what the client needs, not what the
client wants |
|
Moving target problem |
|
|
|
|
|
|
Rapid prototype, or |
|
Requirements document |
|
|
|
|
|
Specifications document (“specifications”) |
|
Legal document |
|
Must not have phrases like “optimal,” or “98% complete” |
|
|
|
|
|
Specifications must not be |
|
Ambiguous |
|
Incomplete |
|
Contradictory |
|
|
|
|
|
Once the specifications have been signed off |
|
The software product management plan (SPMP)
is drawn up |
|
This is the earliest possible time for the SPMP |
|
|
|
|
|
Traceability |
|
Review |
|
Check the SPMP |
|
|
|
|
|
|
Specification document (specifications) |
|
SPMP |
|
|
|
|
|
Specification—what |
|
Design—how |
|
Retain design decisions |
|
When a dead-end is reached |
|
For the maintenance team |
|
Ideally, the design should be open-ended |
|
Architectural design |
|
Decompose the product into modules |
|
Detailed design |
|
Design each module: data structures, algorithms |
|
|
|
|
|
|
|
Design |
|
Architectural design |
|
Detailed design |
|
|
|
|
Implement the detailed design in code |
|
|
|
|
|
Review |
|
Test cases |
|
Informal testing (desk checking) |
|
Formal testing (SQA) |
|
|
|
|
|
Source code |
|
Test cases (with expected output) |
|
|
|
|
Combine the modules and check the product as a
whole |
|
|
|
|
Product testing |
|
Acceptance testing |
|
|
|
|
Commented source code |
|
Test cases for the product as a whole |
|
|
|
|
|
“Shrink-wrapped software” |
|
Commercial off-the-shelf (COTS) |
|
Nowadays, COTS software is often downloaded |
|
“Click-wrapped software” |
|
Alpha testing |
|
Beta testing |
|
|
|
|
|
Maintenance |
|
Any change once the client has accepted the
software |
|
The most money is devoted to this phase |
|
The problem of lack of documentation |
|
|
|
|
|
|
Record of all changes made, with reasons |
|
Regression test cases |
|
|
|
|
|
|
Good software is maintained |
|
|
|
Sometimes software is rewritten from scratch |
|
Software is now unmaintainable because |
|
A drastic change in design has occurred |
|
The product must be implemented on a totally new
hardware/operating system |
|
Documentation is missing or inaccurate |
|
Hardware is to be changed—it may be cheaper to
rewrite the software from scratch than to modify it |
|
|
|
True retirement is a rare event |
|
|
|
|
Does the product meets the user’s real needs? |
|
Is the specification document free of
ambiguities, contradictions, and omissions? |
|
|
|
|
|
Hardware has inherent limits |
|
So does software |
|
No Silver Bullet |
|
Complexity |
|
Conformity |
|
Changeability |
|
Invisibility |
|
Aristotelian categories |
|
Essence |
|
Accidents |
|
|
|
|
|
Software is far more complex than hardware |
|
Traditional abstraction will not work |
|
We cannot understand the whole, so we cannot
understand any part |
|
Management is difficult |
|
Maintenance is a nightmare (documentation, too) |
|
|
|
|
|
|
Type 1: Existing gold refinery |
|
Type 2: New gold refinery |
|
|
|
|
|
Software is easier to change than hardware |
|
Pressure to change |
|
Reality |
|
Useful software |
|
Easier to change |
|
Software has a long lifetime (~15 yrs) compared to hardware (~4 yrs) |
|
|
|
|
|
|
Software is invisible and unvisualizable |
|
Complete views are incomprehensible |
|
Partial views are misleading |
|
However, all views can be helpful |
|
|
|
|
|
What about |
|
High-level languages |
|
Time sharing |
|
CASE tools |
|
These did not solve the intrinsic problems |
|
We have experienced |
|
6% annual productivity increase |
|
But, no “silver bullet” (order-of-magnitude
increase) is possible |
|
|
|
|
|
U.S. Department of Defense initiative |
|
Software Engineering Institute (SEI) |
|
The fundamental problem with software |
|
The software process is badly managed |
|
|
|
|
|
Software process improvement initiatives |
|
Capability maturity model (CMM) |
|
ISO 9000-series |
|
ISO/IEC 15504 |
|
|
|
|
|
Not a life-cycle model |
|
Set of strategies for improving the software
process |
|
SW–CMM for software |
|
P–CMM for human resources (“people”) |
|
SE–CMM for systems engineering |
|
IPD–CMM for integrated product development |
|
SA–for software acquisition |
|
These strategies are being unified into CMMI
(capability maturity model integration) |
|
|
|
|
|
|
|
|
A strategy for improving the software process |
|
Put forward in 1986 by the SEI |
|
Fundamental idea: |
|
Improving the software process leads to |
|
Improved software quality |
|
Delivery on time, within budget |
|
Improved management leads to |
|
Improved techniques |
|
Five levels of “maturity” are defined |
|
Organization advances stepwise from level to
level |
|
|
|
|
|
Ad hoc approach |
|
Entire process is unpredictable |
|
Management consists of responses to crises |
|
Most organizations world-wide are at level 1 |
|
|
|
|
|
Basic software management |
|
Management decisions should be made on the basis
of previous experience with similar products |
|
Measurements (“metrics”) are made |
|
These can be used for making cost and duration
predictions in the next project |
|
Problems are identified, immediate corrective
action is taken |
|
|
|
|
|
The software process is fully documented |
|
Managerial and technical aspects are clearly
defined |
|
Continual efforts are made to improve quality,
productivity |
|
Reviews are performed to improve software
quality |
|
CASE tools are applicable now (and not at levels
1 or 2) |
|
|
|
|
|
|
|
Quality and productivity goals are set for
each project |
|
Quality, productivity are continually monitored |
|
Statistical quality controls are in place |
|
|
|
|
|
Continuous process improvement |
|
Statistical quality and process controls |
|
Feedback of knowledge from each project to the
next |
|
|
|
|
|
|
|
|
|
There are key process areas (KPAs) for each
level |
|
|
|
Level 2 KPAs include: |
|
Requirements management |
|
Project planning |
|
Project tracking |
|
Configuration management |
|
Quality assurance |
|
|
|
Compare |
|
Level 2: Detection and correction of faults |
|
Level 5: Prevention of faults |
|
|
|
|
|
It takes: |
|
3 to 5 years to get from level 1 to level 2 |
|
1.5 to 3 years from level 2 to level 3 |
|
SEI questionnaires highlight shortcomings,
suggest ways to improve the process |
|
Original idea: Defense contracts would be
awarded only to capable firms |
|
|
|
|
|
|
Profitability |
|
Hughes Aircraft (Fullerton, CA) spent $500K
(1987–90) |
|
Savings: $2M per year, moving from level 2 to
level 3 |
|
Raytheon moved from level 1 in 1988 to level 3
in 1993 |
|
Productivity doubled |
|
Return of $7.70 per dollar invested in process
improvement |
|
|
|
|
|
Other software process improvement (SPI)
initiatives: |
|
ISO 9000-series |
|
ISO/IEC 15504 |
|
|
|
|
|
Set of five standards for industrial activities |
|
ISO 9001 for quality systems |
|
ISO 9000-3, guidelines to apply ISO 9001 to
software |
|
There is an overlap with CMM, but they are not
identical |
|
Not process improvement |
|
Stress on documenting the process |
|
Emphasis on measurement and metrics |
|
ISO 9000 is required to do business with the
E.U. |
|
Also by many U.S. businesses, for example, GE |
|
More and more U.S. businesses are ISO 9000
certified |
|
|
|
|
|
|
|
|
Original name: Software Process Improvement
Capability dEtermination (SPICE) |
|
International process improvement initiative |
|
Started by British Ministry of Defence (MOD) |
|
Includes process improvement, software
procurement |
|
Extends and improves CMM, ISO 9000 |
|
Framework, not a method |
|
CMM, ISO 9000 conform to this framework |
|
Now referred to as ISO/IEC 15504 |
|
Or just 15504 for short |
|
|
|
|
|
|
SEI report on 13 organizations in the original
study |
|
They used a variety of process improvement
techniques, not just SW–CMM |
|
|
|
|
Results of 34 Motorola projects |
|